package com.ruoyi.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.SysGeographical;
import com.ruoyi.common.core.domain.TreeSelect;

import java.util.List;

/**
 * 地理位置信息Service接口
 * 
 * @author yfkj
 * @date 2021-10-12
 */
public interface ISysGeographicalService  extends IService<SysGeographical>
{
    /**
     * 查询地理位置信息
     * 
     * @param geographicalId 地理位置信息主键
     * @return 地理位置信息
     */
    public SysGeographical selectSysGeographicalByGeographicalId(Long geographicalId);

    /**
     * 查询地理位置信息列表
     * 
     * @param sysGeographical 地理位置信息
     * @return 地理位置信息集合
     */
    public List<SysGeographical> selectSysGeographicalList(SysGeographical sysGeographical);

    /**
     * 新增地理位置信息
     * 
     * @param sysGeographical 地理位置信息
     * @return 结果
     */
    public int insertSysGeographical(SysGeographical sysGeographical);

    /**
     * 修改地理位置信息
     * 
     * @param sysGeographical 地理位置信息
     * @return 结果
     */
    public int updateSysGeographical(SysGeographical sysGeographical);

    /**
     * 批量删除地理位置信息
     * 
     * @param geographicalIds 需要删除的地理位置信息主键集合
     * @return 结果
     */
    public int deleteSysGeographicalByGeographicalIds(Long[] geographicalIds);

    /**
     * 删除地理位置信息信息
     * 
     * @param geographicalId 地理位置信息主键
     * @return 结果
     */
    public int deleteSysGeographicalByGeographicalId(Long geographicalId);

    /**
     * 构建前端所需要树结构
     *
     * @param geographicalList 区域地址列表
     * @return 树结构列表
     */
    public List<SysGeographical> buildGeographicalTree(List<SysGeographical> geographicalList);

    /**
     * 构建前端所需要下拉树结构
     *
     * @param geographicalList 区域地址列表
     * @return 下拉树结构列表
     */
    public List<TreeSelect> buildGeographicalTreeSelect(List<SysGeographical> geographicalList);

    public SysGeographical getGeographicalByName(String name);

    public SysGeographical getGeographicalByCode(String code);

    public SysGeographical getGeographicalById(Long id);
}
